package _java_basis._10_12;

import java.util.Arrays;
import java.util.Scanner;

public class _Ji {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
//        定义一个长度为10的数组，依次放入5的倍数，第一个放5,第二个放10,第三个放入15。。。
//        int x=5;
//        int ar[]=new int[10];
//        for (int a=0;a<ar.length;a++){
//            ar[a]=x*(a+1);
//        }


//        定义一个长度为31的整数数组，依次放入的2的若干次方，第一个放1，第二个放2，第三个放4，第四个放8。。。。并输出
//        int[] ar = new int[31];
//        int x=2,num=0;
//    for (int a=0;a<ar.length;a++){
//        if (a==0){
//            ar[a]=1;
//        }else{
//            ar[a]=x;
//            x=x*2;
//        }
//    }


//        定义一个长度为10的数组，依次放入从1开始的各个数的平方，第一个放1的平方，第二个放2的平方，第三个放3的平方,然后倒序输出
//        int[] ar=new int[10];
//        for (int a=0;a<ar.length;a++){
//           ar[a]=(a+1)*(a+1);                       //输入平方
//        }
//        int n;                                  //倒序输出
//        for (int a=0;a<ar.length;a++){
//           for (int aa=0;aa<ar.length-1-a;aa++){
//               if (ar[aa]<ar[aa+1]){
//                   n=ar[aa];
//                   ar[aa]=ar[aa+1];
//                   ar[aa+1]=n;
//               }
//           }
//        }


//        定义一个长度为100的整数数组，依次放入从20开始的各个数的平方，第一个放20的平方，第二个放21的平方，第三个放22的平方。。。,然后倒序输出
//     int[] ar=new int[100];
//     for (int a=0;a<ar.length;a++){
//         ar[a]=(a+20)*(a+20);
//     }
//     int a;
//     for (int b=0;b<ar.length;b++){
//         for (int bb=0;bb<ar.length-1-b;bb++){
//             if (ar[bb]<ar[bb+1]){
//                 a=ar[bb];
//                 ar[bb]=ar[bb+1];
//                 ar[bb+1]=a;
//             }
//         }
//     }
//

//        定义一个double类型的数组，长度是8，求数组中所有数的
//        double[] ar=new double[8];
//        double x=0;
//        for (int a=0;a<ar.length;a++){
//            ar[a]=input.nextDouble();
//            x=x+ar[a];
//        }
//        System.out.println(x);


//        在给定的一个整数数组中（ 长度是15），要求查找输入的数字出现的次数。
//    int x=0;
//    int m=input.nextInt();
//    int[] ar =new int[]{6,5,8,9,7,1,5,2,6,5,6,6,6,9,4};
//        for (int i : ar) {
//            if (i == m) {
//                x++;
//            }
//        }
//       if (x>0){
//           System.out.println("出现了"+x+"次");
//       }else {
//           System.out.println("查无此数");
//       }


        /*在给定的一个整数数组中（ 长度是10），要求查找最大的数字和他的位置
        比如 {1，20,4,21,45}这个数组，
        结果是 45,位置是4*/
//        int[] ar = new int[]{68, 45, 78, 62, 98, 45, 98, 99, 13, 45};
//        int x = ar[0];
//        for (int a : ar) {   //找出最大数
//            if (x < a) {
//                x = a;
//            }
//        }
//        System.out.println("最大的数是:" + x + ",");
//        for (int l = 0; l < ar.length; l++) {           //找出它的位置
//            if (ar[l] == x)
//                System.out.println("它的位置在" + l);
//        }


//        在给定的一个整数数组中（ 长度是20），要求查找第二大的数字是多少
//        int[] ar = new int[]{99, 64, 85, 71, 62, 54, 67, 65, 99, 46, 25, 15, 86, 2, 6, 5, 6, 21, 56, 90, 99};
//       int mm=ar[0];
//        for (int j : ar) {   //找出最小值mm
//            if (mm > j)
//                mm = j;
//        }
//        int x = mm;           //把最小值复制给x，避免直接把最大值赋给x,影响下面判断
//        for (int a : ar) {    //找出最大值x
//            if (a > x)
//                x = a;
//        }
//
//        int num = mm;          //把最小值复制给num，避免直接把最大值赋给num,影响下面判断
//        for (int i : ar) {
//            if (i != x) {      //进行判断，当i不等于最大值x才能进入
//                if (num < i)
//                    num = i;
//            }
//        }
//        System.out.println(num);


//        baidu快速排序算法的实现：
//        快速排序的原理：通过一趟排序将要排序的数据分割成独立的两部分，其中一部分的所有数据都比另外一部分的所有数据都要小。
//        然后再按此方法对这两部分数据分别进行快速排序，整个排序过程可以递归进行，以此达到整个数据变成有序序列。


//        定义两个整数数组，判断他们是否相同（数组长度一样，并且每个位置上的值都是相同，则认为数组相同）
//        System.out.println("请输入第一个数组的长度:");
//        int x = input.nextInt();
//        System.out.println("请输入第二个数组的长度:");
//        int xx = input.nextInt();
//        int[] ar = new int[x];
//        int[] br = new int[xx];
//        if (x == xx) {   //判断数组长度是否相同
//            for (int a = 0; a < ar.length; a++) {  //循环  输入第一个数组各个下标上的值
//                System.out.println("请输入第一个数组的第" + (a + 1) + "个数；");
//                ar[a] = input.nextInt();
//            }
//            for (int a = 0; a < br.length; a++) {  //循环  输入第二个数组各个下标上的值
//                System.out.println("请输入第二个数组的第" + (a + 1) + "个数；");
//                br[a] = input.nextInt();
//            }
//            int num = 0;  // 定义一个为0的变量，这里用来计数，    也可以把 p 在循环外声明，用来计数
//            for (int p = 0; p < ar.length; p++) {
//                if (ar[p] == br[p]) {
//                    num++;
//                }
//            }
//            if (num == ar.length) {   //判断数组的各个位置上的值是否相同
//                System.out.println("数组完全相同");
//            } else {
//                System.out.println("数组不完全相同");
//            }
//        } else {
//            System.out.println("数组长度不相同");
//        }


//        /**定义一个整数数组，判断其中是否有重复的数据**/
//        int[] ar=new int[]{9,5,6,8,4,2,3,9};
//        int x=0;
//        for (int a=0;a<ar.length;a++){
//            for (int b=a+1;b<ar.length;b++){
//                if (ar[a]==ar[b]){
//                    x++;
//                }
//            }
//        }
//        if (x>0){
//            System.out.println("有重复的数据");
//        }else {
//            System.out.println("没用");
//        }


//        定义一个整数数组，输出比平均值大的数
//    int[] ar=new int[]{90,85,80,98,96,81,79};
//    int x=0;
//    for (int a:ar){
//        x=x+a;
//
//    }
//        x=x/ar.length;
//        for (int b:ar){
//            if (b>x){
//                System.out.println(b);
//            }
//        }


        /**福彩双色球的玩法分为红球和篮球（具体玩法百度），
         红球范围是1-33，蓝球是1-16。
         每注是6个红球不重复并按照升序顺序排列，加上一个蓝球。
         生成一注号码，随机数的方法是Math.random()**/
//        int[] ar=new int[6];
//        ar[6-1]=34;
//        for (int a=0;a<ar.length-1;a++){
//            ar[a]=((int)(Math.random()*33+1));
//        }
//
//        Arrays.sort(ar);
//        ar[6-1]=((int)(Math.random()*16));
//        for (int v:ar){
//            System.out.print(v+" ");
//        }

        /**定义一个数组，将其颠倒（第一个放到最后一个，第二个放到倒数第二个。。。）
         然后输出这个数组。
         **/
//        int[] ar=new int[]{1,2,3,4,5,6};
//        int x;
//        for (int a=0;a<ar.length;a++){
//            if (a<ar.length/2){
//                x=ar[a];
//                ar[a]=ar[ar.length-a-1];
//                ar[ar.length-a-1]=x;
//            }
//        }
//        for (int b:ar){
//            System.out.println(b);
//        }

        /**定义整数的 二维数组。
         求二维数组中的最大值**/
//        int[][] ar=new int[][]{{9,6,8,7},{10,6,35,5}};
//        int x=ar[0][0];
//        for (int a=0;a<ar.length;a++){
//            for (int aa=0;aa<ar[a].length;aa++){
//                if (x<ar[a][aa])
//                    x=ar[a][aa];
//            }
//        }
//        System.out.println(x);
    }
}
